// 需求：实现一个get接口，获取./data/data.json数据
/**
 * 
 * 前端调用接口需要哪些条件？
 * 答：1、请求方式
 *     2、请求的路径
 * 
 * 如何设计接口呢？
 * 答：
 * 1、设计请求方式为 get
 * 2、设置请求的路径：/getHero
 * 
 * */ 

const http  = require('http');
const fs = require('fs');

const server = http.createServer((req,res)=>{
    // setHeader解决中文乱码问题
    res.setHeader('content-type','text/html;charset=utf8') 
    console.log('触发了服务器');
    // 我们这里接收前端请求的时候，就要判断前端请求的方式和路径符不符合
    // 我们设计的值。
    // 1、首先判断前端发起的请求是否为get请求？如何判断？答：可以通过req.method获取到
    // 2、判断前端发起的请求路径是否为 /getHero如何判断呢？答：可以通过req.url获取到
    console.log('请求路径：',req.url);
    console.log('请求方式：',req.method);
    // toUpperCase把小写字母改为大写字母
    if(req.method.toUpperCase() === "GET" && req.url === '/getHero'){
        // 读取data.json文件中的数据返回给前端
        fs.readFile('./data/data.json','utf-8',(err,data)=>{
            if(err){
                return res.end('获取数据失败！')
            }
            // 成功 把数据传给前端（浏览器）
            res.end(data)
        })
    }else{
        // 设置响应的状态码 这个状态码的值是由http协议规定的
        // 比如：值为404表示资源找不到，500表示服务端错误
        res.statusCode = 404 
        res.end('请求失败，请求检查请求路径和方式')
    }
})

server.listen(8001, ()=>{
    console.log('服务器启动成功：http://localhost:8001');
})

/**
 * req.url: 指的是端口号后面的路径（包括参数部分）
 * 
 * 
 * */ 